/*
 * Copyright (c) 2021 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef TIMELINE_DATABASE_INFO_H
#define TIMELINE_DATABASE_INFO_H

#include <string>
#include <memory>
#include <vector>
#include <thread>
#include <map>			  
// #include "rdb_store.h"
// #include "rdb_helper.h"
// #include "rdb_open_callback.h"
// #include "rdb_store_config.h"
// #include "values_bucket.h"
// #include "result_set.h"
#include "timeline_data_utils.h"

namespace OHOS {
namespace Msdp {
class TimelineDatabaseInfo {
public:
	tm getTime(int timestring);
	struct MovementData
	{
		int32_t ID;
		std::string USER_NAME;
		int32_t MOVEMENT_TYPE = -1;
		int32_t MOVEMENT_STATUS = -1;
		int32_t TIME_STAMP = 0;
		double LONGITUDE = -1000;
		double LATITUDE = -1000;
		std::string SSID;
        std::string BSSID;
	};
	struct Schedule
	{
		tm START_TIME;
		tm END_TIME;
		int32_t MOVEMENT_TYPE;
		double LONGITUDE = -1000;
		double LATITUDE;	
		std::string SSID;
        std::string BSSID;
	};
	struct Stay
	{
		tm START_TIME;
		tm END_TIME;
		double LONGITUDE = -1000;
		double LATITUDE;
		std::string SSID;
        std::string BSSID;
	};
	struct ListData
	{
		int32_t ID;
		double LATITUDE;
		double LONGITUDE;
		int STARTTIMEYEAR;
		int STARTTIMEMONTH;
		int STARTTIMEDAY;
		int STARTTIMEHOUR;
		int STARTTIMEMIN;
		int STARTTIMESEC;
		int ENDTIMEYEAR;
		int ENDTIMEMONTH;
		int ENDTIMEDAY;
		int ENDTIMEHOUR;
		int ENDTIMEMIN;
		int ENDTIMESEC;
		std::string SSID;
        std::string BSSID;
	};
	enum MovementType {
        TYPE_INVALID = -1,
        TYPE_IN_VEHICLE,
        TYPE_IN_AUTO,
        TYPE_IN_PLANE,
        TYPE_IN_METRO,
        TYPE_IN_ELEVATOR,
        TYPE_ON_BICYCLE,
        TYPE_STAY,
        TYPE_STILL,
        TYPE_RELATIVE_STILL,
        TYPE_ON_FOOT,
        TYPE_WALKING,
        TYPE_WALKING_HANDHOLD,
        TYPE_FAST_WALKING,
        TYPE_RUNNING,
        TYPE_LYING_POSTURE,
        TYPE_SMART_FLIGHT,
        TYPE_HIGH_SPEED_RAIL
    };
    enum ForcecastPosition {
		HOME = 0,
		COMPANY = 1,
		UNKNOWN = 9,
	};
    enum TimelineArea {
        AREA_HOME = 0,
        AREA_COMPANY = 1,
        AREA_UNKNOWN = 9
    };

    enum DevicestatusType {
        TYPE_HIGH_STILL = 0,
        TYPE_FINE_STILL = 1,
        TYPE_CAR_BLUETOOTH = 2
    };
private: 
};
}
}
#endif // TIMELINE_DATABASE_INFO_H